package com.dynamic.datasource.property;

import com.dynamic.datasource.property.druid.DruidDataSourceConfig;
import com.zaxxer.hikari.HikariConfig;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;

import java.util.HashMap;
import java.util.Map;

/**
 * @author 王先堂
 * @Description 动态数据源配置信息
 * @createTime 2022/03/24/ 10:11:00
 */
@Data
@ConfigurationProperties(prefix = GlobalDataSourceProperty.PREFIX)
public class GlobalDataSourceProperty {

    public static final String PREFIX = "spring.dynamic";
    /**
     * todo 如何设计多租户模式的动态数据源
     */
    /**
     * 是否启用多租户模式
     */
    Boolean enableTenant = false;
    /**
     * 是否开启spy
     */
    Boolean p6spy = false;
    /**
     * 是否开启seatal
     */
    Boolean seata = false;

    /**
     * todo 分库分表
     * https://blog.csdn.net/fly910905/article/details/87101059
     */
    /**
     * 配置的数据源集合
     * <p>
     * key：数据源名称
     * value：这个数据源的配置
     */
    Map<String, DataSourceProperty> dataSource = new HashMap<>();
    /**
     * 是否延迟创建数据源
     */
    private Boolean lazy = false;
    /**
     * 全局的hikari连接池配置
     */
    private HikariConfig hikari;
    /**
     * 全局的druid连接池配置
     */
    private DruidDataSourceConfig druid;
}
